package com.yjf.demo.component;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.codec.JsonJacksonCodec;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonConfig {
    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        config.useSingleServer()
                .setAddress("redis://127.0.0.1:6379")
//                .setPassword("")                  // 设置密码
                .setDatabase(0)                     // 设置数据库
                .setIdleConnectionTimeout(10000)    // 空闲连接超时
                .setConnectTimeout(10000)           // 连接超时
                .setTimeout(3000)                   // 操作超时
                .setRetryAttempts(3)                // 重试次数
                .setRetryInterval(1500)             // 重试间隔
                .setSubscriptionConnectionPoolSize(50) // 订阅连接池大小
                .setConnectionMinimumIdleSize(10)   // 最小空闲连接数
                .setConnectionPoolSize(64);         // 连接池大小

        config.setCodec(new JsonJacksonCodec());    // 强制使用JSON序列化
        return Redisson.create(config);
    }
}
